// Time.hpp

#ifndef _TIME_HPP_
#define _TIME_HPP_

#include "Organism.hpp"
#include <list>

class Forest;

/** 
 * Class Time is the keeper of the ticks and the tocks.
 */
class Time
{

private:

  /**
   * The initial time.
   */
  int t0;

  /**
   * The final time.
   */
  int tf;
 
  /**
   * The current time.
   */
  int t;

public:
	
  /**
   * Creates a new Time object to run a simulation from some start
   * time to some end time.
   */
  Time(int start, int end);

  /**
   * Takes the simulation through a single timestep. Returns true if
   * there are more timesteps to step through, false otherwise.
   */
  bool step(Forest &forest);

  /**
   * Returns the time.
   *
   * @return t is the current time
   */
  int getTime() {return t;}

};

#endif
